Compiler
有没有大佬给我讲解一下MSVC、MINGW,gcc、g++,qmake、cmake的联系和区别是什么? - 知乎
编译器的作用就是把人类可读的语言转变为机器可读的语言。
GCC(GNU Compiler Collection)
History - GCC Wiki
GCC的组成部分以及使用到的软件 (biancheng.net)
GCC/G++用法汇总_Kessity的博客-CSDN博客_gcc语法
GCC 是 GNU 计划开发的编译器,直观的翻译大概为 GNU 编译器合集,目的与功能就是各种语言的编译。
| Release | Release date |
|---|---|
| started | 1984 |
| 0.9 (first beta release) | March 22, 1987 |
| extended to compile C++ | December, 1987 |
| GCC 2.95.3(GCC stands for the GNU Compiler Collection) | March 16, 2001 |
gcc 和 g++ 是 GCC 中的编译器工具。gcc 通用可以编译多种语言,在命令行出现过的 gcc 开头的命令就是使用该工具,也许最开始的 GCC 所代表的意思 GNU C Compiler 就是指 gcc 。g++ 主要编译 C++程序,也可以将 C 程序视为 C++程序进行编译。(就本质而言,gcc 和 g++ 并不是编译器,也不是编译器的集合,它们只是一种驱动器,根据参数中要编译的文件的类型,调用对应的 GUN 编译器,所以才实现的对不同语言编译) |
MinGW(Minimalist GNU for Windows)
pl-docs/zh-CN/mingw-vs-mingw-v64.md at master · FrankHB/pl-docs · GitHub
MinGW 是开发环境,一整套的工具链而不仅仅是 GCC 的移植,GCC 只是它的核心组件之一。
MinGW-W64
MinGW-W64 并非 MinGW 的更新换代,而是独立项目。
MinGW Distribution(Distro)
发行版的概念源自 Linux,自由的加入自己需要的功能打包发布。
没有 git 下第一个,有 git 下第二个,打开是个自动下载解压工具,放到合适的位置,再在环境变量里添加就可以了
Clang and LLVM
经典编译器组成(前端+优化器+后端)以及LLVM和Clang简介_编译器前端-CSDN博客
详解三大编译器:gcc、llvm 和 clang
LLVM
Clang 对应传统编译器的前端,LLVM 对应优化器和后端,这是比较细的说法,也可以
mac 终端中,输入 gcc 命令,为什么运行的是 clang? - 邱昊宇的回答 - 知乎
https://www.zhihu.com/question/24275474/answer/27262584
char : -128~127
signed char : -128~127
unsignd char : 0~255
short : -32768~32767
int : -2147483648~2147483647
long : -9223372036854775808~9223372036854775807
unsigned short : 0~65535
unsigned : 0~4294967295
unsigned long : 0~18446744073709551615
Compilation Process
编译原理:编译过程概述 - 牛犁heart - 博客园
C / C++程序编译过程 | 太傅博客
预处理(Pre-Processing)、编译(Compilation)、汇编(Assembling)、链接(Linking)
编译过程基本是相似的,